import request from "../../utils/request"

let isSend = false
Page({

  /**
   * 页面的初始数据
   */
  data: {
    placeholderWord: "", // 提示搜索关键字
    hotList: [], // 热搜榜数据
    searchList: [], // 搜索列表数据
    searchContext: "", // 搜索关键字
    historyList: [] // 历史数据
  },

  // 获取初始化数据
  async getInitData() {
    // 发送请求获取搜索关键字
    const result = await request("/search/default")
    // 保存数据
    this.setData({
      placeholderWord: result.data.showKeyword
    })
    // 获取热搜榜数据
    const hotListData = await request("/search/hot/detail")
    // 保存数据
    this.setData({
      hotList: hotListData.data
    })
  },

  // 搜索音乐 
  handlerSearchContent(event) {
    // 拿到搜索关键字
    const searchContext = event.detail.value.trim()

    // 保存数据
    this.setData({
      searchContext
    })

    if (isSend) {
      return
    }

    isSend = true
    this.getSearchList() // 获取搜索数据列表

    setTimeout(() => {
      isSend = false
    }, 300)
  },

  // 获取搜索列表的数据
  async getSearchList() {
    const { searchContext } = this.data

    if (!searchContext) {
      this.setData({
        searchList: []
      })
      return
    }

    // 发请求获取搜索数据列表
    const searchListData = await request("/search", { keywords: searchContext, limit: 10 })
    // 保存数据
    this.setData({
      searchList: (searchListData.result || {}).songs
    })

    // 判断历史数据中是否存在该数据
    if (history.indexOf(searchContext) !== -1) {
      historyList.splice(history.indexOf(searchContext), 1)
    }

    historyList.unshift(searchContext)
    this.setData({
      historyList
    })
    wx.setStorageSync("historyList", historyList);
  },

  // 读取本地缓存历史数据
  getHistoryList() {
    const historyList = wx.getStorageSync("historyList");
    if (historyList) {
      this.setData({
        historyList
      })
    }
  },

  // 清空历史数据
  clearHistoryList() {
    wx.showModal({
      title: '删除提示',
      content: '您确定要删除吗？',
      success: (res) => {
        if (res.confirm) {
          this.setData({
            historyList: []
          })
          wx.removeStorageSync("historyList");
        }
      }
    })
  },

  // 清空文本框
  clearContent(){
    this.setData({
      searchContext: ""
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getInitData() // 获取初始化数据
    this.getHistoryList() // 读取本地缓存历史数据
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})